C语言学习笔记(1)C语言学习笔记
1/ 2
C语言学习笔记(1)
——定义char amessage[]和char *pmessage的区别
printf("hello world\n");
字符串常量是一个字符数组,作为函数参数时,实际上是通过字符指针访问该字符串的。printf接受
的是一个指向字符数组第一个字符的指针。也就是说,字符串常量可以通过一个指向其第一个元素的指针访问。
C语言没有提供将整个字符串作为一个整体进行处理的运算符。
char *pmessage;
pmessage = "now is t...
C语言学习笔记
1/ 2
C语言学习笔记(1)
——定义char amessage[]和char *pmessage的区别
printf("hello world\n");
字符串常量是一个字符数组,作为函数参数时,实际上是通过字符指针访问该字符串的。printf接受
的是一个指向字符数组第一个字符的指针。也就是说,字符串常量可以通过一个指向其第一个元素的指针访问。
C语言没有提供将整个字符串作为一个整体进行处理的运算符。
char *pmessage;
pmessage = "now is the time";
把一个指向该字符数组的指针赋值给pmessage。该过程并没有进行字符串的复制,而只是涉及到指针的操作。
char amessage[] = "now is the time";//定义一个数组
char *pmessage = "now is the time";//定义一个指针
上述声明中,amessage是一个仅仅足以存放初始化字符串以及空字符'\0'的一维数组。数组的单个字符可以进行修改,但amessage始终指向同一个存储位置。pmessage是一个指针,其初值指向一个字符串常量,之后可以修改以指向其他地址,但是如果试图修改字符串的内容,结果是没有定义的。
注意如下代码:
char *Func(void)
{
char str[] = "hello world";
return str; //return语句不可返回指向“栈内存”的“指针”,因为该内存在函数体结束时被自动销毁。
}
char *Func(void)
{
char *pstr = "hello world";//字符串常量存放在静态区
return pstr;
}
strcpy(s, t)把指针t指向的字符串复制到指针s指向的位置。如果使用语句s=t实现该功能,其实质上只是拷贝了指针,而并没有复制字符。为了进行字符的复制,这里使用了一个循环语句。
//strcpy函数:将指针t指向的字符串复制到指针s指向的位置;使用数组下标实现的版本
void strcpy(char *s, char *t)
{
int i;
i = 0;
while ((s[i] = t[i]) != '\0')
i++;
}
C语言学习笔记
//strcpy函数:将指针t指向的字符串复制到指针s指向的位置;使用指针方式实现的版本void(char *s, char *t)
{
while ((*s = *t)!='\0')
{
s++;
t++;
}
}
2/ 2
本文档为【C语言学习笔记(1)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。