首页 > 代码库 > c语言中char* 代表什么
c语言中char* 代表什么
1 c语言中,char* 代表 字符指针类型,当其指向一个字符串的第一个元素时,它就可以代表这个字符串了
2 示例
#include<stdio.h>
int main(){
char* str = "learn c";
printf("%s\n", str);
getchar();
return 0;
}
/*运行结果是
learn c
*/
3 分析
在char* str="learn c";中,"learn c"是长度为8的字符数组常量,其最后一个元素是‘\0‘,而这句代码执行的结果是将str指向了"learn c"的第一个字符‘l‘,str后面的连续内存依次存放‘e‘,‘a‘,‘r‘,‘n‘,‘ ‘,‘c‘,‘\0‘
4 扩展
c语言中的字符串是用字符数组来表示的,只是c语言规定了一个字符串结束标志,即字符‘\0‘,也就是遇到字符‘\0‘时,这个字符串就结束了
5 关于 * 和 & 的谜题
假设有一个 int 类型的变量 a,pa 是指向它的指针,那么*&a和&*pa分别是什么意思呢?
*&a可以理解为*(&a),&a表示取变量 a 的地址(等价于 pa),*(&a)表示取这个地址上的数据(等价于 *pa),绕来绕去,又回到了原点,*&a仍然等价于 a。
&*pa可以理解为&(*pa),*pa表示取得 pa 指向的数据(等价于 a),&(*pa)表示数据的地址(等价于 &a),所以&*pa等价于 pa。
本文出自 “我是程序我最大” 博客,请务必保留此出处http://skinglzw.blog.51cto.com/10729606/1923815
c语言中char* 代表什么
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。