C语言学习---day1(字符串数组,指针)

   C语言中没有和JAVA中一样的String类型,因此,在C语言中,通过使用字符数组来保存字符串,为了和普通的字符数组区分,我们需要在字符串的尾部添加

一个结束标志:‘\0‘,因此,例如字符串:"bht",那么保存这个字符串的字符数组长度为4. 

   字符串的初始化:

1 char a[4]={‘b‘,‘b‘,‘t‘,‘\0‘};
2
3 char b[4];
4 b[0]=‘b‘;
5 b[1]=‘h‘.......
6
7 char c[]="bht";

  如果使用第7行的代码的话,该字符数组的长度不是3,而是4,系统会自动在后面添加‘\0‘这个结束标志!

                

                  关于puts()和gets()两个函数与printf()与scanf()函数的区别

  在xcode中,如果使用puts()和gets()函数的话,编译器会提示这两个函数不安全.为什么呢?下文描述.首先说说gets和puts,这两个分别表示

接收一个字符串和输出一个字符串,可以接收空格和TAB键,而printf和scanf不可以.但是puts和gets不如printf和scanf灵活,后者都可以一次行输出

或者接收多个字符串.

  安全性如下程序:

    char a[]="bht";
    char b[]={‘i‘,‘m‘};

    puts(b);

  如果在定义字符串的时候(b),后面忘记敲‘\0‘,那它的输出结果则是  imbht   分析可以如下解释:

在内存中的情况:

    由于puts和gets都是读取到‘\0才结束,因此,会将后面数组a也会打印到控制台中.  这里有内存分配先后的问题

时间: 2024-10-12 02:10:38

C语言学习---day1(字符串数组,指针)的相关文章

C语言中的字符串数组 指针

1.字符串 用“”引起来的内容,就是字符串. 在C语言中有没有专门的字符串的变量?  没有 所以我们使用字符数组来存储字符串.(把字符串的每一个字符存储到字符数组的每一个元素中,并且会多存放一个‘\0’) '\0' 字符串的结束标记,ascII码表中值是 0 对应的字符.NUT,NULL 2.字符数组 1)定义 char 数祖名[长度]; char str[200]; 表示定义一个长度为200的字符数组,如果用来存储字符串,则字符串的最大长度是199,留出一个给'\0' char str[3]=

R语言学习(5)-字符串和因子

字符串和因子 1.字符串 创建字符串 > c("HELLO","WORLD") [1] "HELLO" "WORLD" 使用paste函数连接字符串 > paste(c("hello","hi"),"world") [1] "hello world" "hi world" > paste(c("hel

c语言基础常用字符串数组函数与结构体

字符串常用函数 printf("%d",sizeof(arr));//可查看数组arr所占用的内存(一个int占4位,char占一位) strcpy(arr1,arr2); 将arr2中的内容拷贝到arr1中:arr1的内存需大于arr2 strcmp(arr1,arr2): 逐个比较,若arr1>arr2 返回1: arr1=arr2 返回0: arr1<arr2 返回-1 strcat(arr1,arr2)字符串拼接 目的字符串数组大于两个字符串总和: strlen 从

C语言学习笔记 (001) - 常量指针与指针常量的区别(转帖)

三个名词虽然非常绕嘴,不过说的非常准确.用中国话的语义分析就可以很方便地把三个概念区分开. 一) 常量指针. 常量是形容词,指针是名词,以指针为中心的一个偏正结构短语.这样看,常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量). 指针指向的对象是常量,那么这个对象不能被更改. 在C/C++中,常量指针是这样声明的: 1)const int *p; 2)int const *p; 常量指针的使用要注意,指针指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改,也

python语言学习8——字符串和编码

Unicode编码 计算机只能处理数字,如果要处理文本,就必须把文本转化为数字才能处理 有许多编码标准,但是不同的编码标准有时候会混乱,所以Unicode应运而生 Unicode把所有语言统一到一套编码里,这样就不会再有乱码问题 ASCII编码和Unicode编码的区别: ASCII编码是1个字节,而Unicode编码通常是2个字节. 字母A用ASCII编码是十进制的65,二进制的01000001: 字符0用ASCII编码是十进制的48,二进制的00110000,注意字符'0'和整数0是不同的:

C语言学习笔记--函数与指针

1. 函数类型 (1)C 语言中的函数有自己特定的类型,这个类型由返回值.参数类型和参数个数共同决定.如 int add(int i,int j)的类型为 int(int,int). (2)C 语言中通过 typedef 为函数类型重命名 typedef type name(parameter list);//如 typedef int f(int,int); 2. 函数指针 (1)函数指针用于指向一个函数,函数名是执行函数体的入口地址. (2)定义函数指针的两种方法 ①通过函数类型定义:Fun

C语言学习笔记 (004) - 数组名和数组首地址(转)

一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址.指针变量既然可以指向变量,当然也可以指向数组和数组元素(把数据起始地址或某一元素的地址放到一个指针变量中).所谓数组的指针是指数组的起始地址,数组元素的指针数组元素的地址. 这种指针变量的定义与以前介绍的指向变量的指针变量相同.应当注意,如果数组为int型,则指针变量亦应指向int型. C语言规定数组名代表数组的首地址,也就是第一个元素的地址.因此,下面两个语句等价: p=&a[0]: p=a: 注意数

C语言学习笔记(七) 函数指针

"函数指针"和"指针函数"是一对容易把人弄晕的概念,但我们只要把握好定语,倒也不难理解.这两个名词都是简称,"指针函数"是"返回值为指针的函数",而"函数指针"则是"指向函数的指针".这篇主要讲讲函数指针. 我们讲有int 指针,char指针,它们都是一个指针指向这个变量的实际地址.而C语言在编译函数的时候每个函数会有一个入口地址,当我们用一个指针指向这个入口地址,它就称为函数指针.有了

C语言学习笔记-6.数组

一.一维数组的定义和使用 1.C语言中,数组元素的下标是从0开始 2.定义数组时,需要设定它的长度,该长度必须是一个整型常量 注:常量采用宏定义优势:用简短标识符代替长数据 有利于程序修改和升级 用易于理解的标识符代替不好记的数据 格式:#define PI 3.14 (没有分号) 3.如果对全部的数组元素赋予初值,则可以不指定数组的长度 在初始化时,如果初值的个数少于元素个数,则剩余的自动补0 二.字符数组与字符串 1.字符串通常都保存在字符数组中,每个元素存放一个字符,以'\0'结尾 2.字