C语言(笔记参考,内容多转自他人)

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')才结束转化,并将结果返回(返回转换后的整型数)。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值