c语言——转义字符
”\n“是换行符,其意义是“回车换行”。
"\r"是将输入光标放到本行的开头 。
C语言五大内存分区介绍
1、栈区(stack): —由编译器自动分配释放,存放函数的参数值,局部变量的值等。
2、堆区(heap): 一般由程序员分配释放,若程序员不释放,程序结束时由系统释放。
3、全局区(静态区,static): 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。
4、文字常量区: 常量字符串就是放在这里的。程序结束后由系统释放。
5、程序代码区: 存放函数体的二进制代码。
const修饰的变量
#include <stdio.h>
const int a = 5; //const全局常量,在静态数据区
int main(int argc, char *argv[])
{
// const int a = 5; //const局部常量,在可读写的栈区
int *p = &a;
*p = 8;
printf("%d\n", a);
return 0;
}
//被const修饰的局部变量,放在栈区,可以通过指针强转类型,修改const修饰的变量
//被const修饰的全部变量,放在静态数据区,如果试图通过指针强转类型,会被kill掉
sizeof与strlen的区别
一、基本定义
1、sizeof是C/C++中的一个运算符,其作用是返回一个对象或者类型在内存中所占用的字节数。
注意:sizeof后面如果是类型则必须加括号,如 sizeof(char);而如果是变量名则可以不加括号,如 sizeof a; 但是建议使用时 均加上括号。sizeof不能返回动态地被分配的数组的大小。
2、strlen是C语言中的库函数,所在头文件为#include <string.h>其函数原型为unsigned int strlen(char *s); 其中s为指定的字符串。
注意:strlen只能用char *作为参数,它求的是字符串的实际长度,方法是从开始到遇到第一个'\0'结束
理解c语言——‘\0’ ,‘0’, “0” ,0区别
首先比较一下‘\0’和‘0’的区别。有一个共同点就是它们都是字符,在c语言中,字符是按其所对应的ASCII码来存储的,一个字符占一个字节。第一个ASCII码,0,对应的字符是(Null),其实就是‘\0’,即空字符。判断一个字符串是否结束的标志就是看是否遇到‘\0’,如果遇到‘\0’,则表示字符串结束。而字符‘0’对应的ASCII码是48,48对应的十六进制数就是0x30。
'\0'是字符串结束符,ascii码是0;
‘ ’是空格,代表一个显示为空白的字符,ascii码为32,ascii码中有很多不可见字符,但是都有自己的独特意义。
“”是空字符串,只包含一个'\0'的字符串,但是,它与‘\0’类型不同,它是数组类型,而'\0'是单独的一个字符。
我想你问的应该是第三个和第一个的区别。
c语言中怎么实现字符串转化数字的功能
类似的函数有:
atoi();把字符串转化为整形
atoi();把整形转化为字符串
atol();把字符串转化为长整形
atof();把字符串转化为双精度浮点型
strtod() 将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字
strtol() 将字符串转换为长整值,并报告不能被转换的所有剩余数字
strtoul() 将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字
atoi()函数的功能:将字符串转换成整型数;atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数)。