char* 赋值时单引号和双引号的区别?include”“和include<>的区别

给字符串赋值应该用双引号,单个字符的话用单引号。 
双引号代表字符串,会在后面加一个\0。 

上面的写法,第二句是错误的,无法通过编译的。


双引号表示先在程序源文件所在目录查找,如果未找到则去系统默认目录查找,通常用于包含程序作者编写的头文件;
尖括号表示只在系统默认目录或者括号内的路径查找,通常用于包含系统中自带的头文件;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
8. 代码的输出为:100。 9. 以下代码存在如下错误: - 在字符串常量 "hello,world" 赋值给指针变量 src 缺少 const 修饰符,应该写成 const char *src = "hello,world"。 - 在使用 strlen() 函数计算字符串长度,没有考虑字符串末尾的空字符 '\0',实际上应该使用 len = strlen(src) + 1。 - 在使用指针变量 s 指向字符串末尾,应该将字符串指针 src 加上字符串长度 len,即 s = src + len - 1。 - 在进行字符倒序,应该使用临变量交换字符位置,而不是直接修改指针指向的字符内容。 正确的代码应该是: ``` #include <stdio.h> #include <string.h> #include <stdlib.h> int main() { const char *src = "hello,world"; char *dest = NULL; int len = strlen(src) + 1; dest = (char*)malloc(len); char *d = dest; const char *s = src + len - 1; while (len-- != 0) { *d++ = *--s; } printf("%s", dest); free(dest); return 0; } ``` 10. 以下代码存在如下错误: - 在 test2() 函数中,str1 应该定义为一个字符数组,而不是字符变量,即 char str1[10]。 - 在 test2() 函数中,字符变量赋值应该使用单引号而不是双引号,即 str1[i] = 'a'。 - 在 test3() 函数中,定义的字符串变量 string 的长度为 10,但是在复制字符串没有考虑字符串长度超过 10 的情况,可能会导致缓冲区溢出。 11. 代码的运行结果为:2,5。指针 ptr 指向的是数组 a 的末尾地址,即 &a[5],因此 *(ptr-1) 即为 a[4] 的值 5。而 *(a+1) 即为 a[1] 的值 2。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值