1.字符串指针

char *变量名="字符串内容";

char ch='b';

char *p1=&ch;

char *str="C Language";//表示s指向字符串的首地址

str="ssssssss";//字符串存在常量区,可以修改s指向的内容

*(str+2)='X';//可以*(str+2)这样访问,但是不能修改。常量区保存的内容都是只读的

常见误区:

char *str2=NULL;

printf("%s",str2);//这样写是错误的,str2没有分配内存空间去存储变量

解决办法:

char *str2=NULL;

str2=malloc(100);

printf("%s",str2);

或者:

char ch3[100];

char *str2=ch3;

printf("%s",str2);

2.二维字符数组

char ch2[3][10]={"abc","def","kkk"};

3.char类型的指针数组和字符数组的区别

char *name[3]={"abc","def","kkk"};//一维指针数组,每个元素存储字符串首地址

#include <stdio.h>

int main(int argc, const char * argv[]) {
char *name[]={"abc","def","kkk"};
for(int i=;i<;i++){
printf("%s\n",*(name+i));//name[i]
} return ;
}

1)字符串指针char *ss="abc";指向可以改变ss="ssssss";

2)字符数组char s1[]="abc"; s1是一个常量,不能被赋值,s1="Helll";是错误的,

4.字符串排序

//
// main.c
// 字符串排序
//
// Created by fanyafang on 15/11/4.
// Copyright © 2015年 itcast. All rights reserved.
// #include <stdio.h>
#include <string.h> void sortString(char *arr[],int length){
char *temp="";
//选择排序
for(int i=;i<length;i++){
for(int j=i+;j<length;j++){
if(strcmp(arr[i], arr[j])>){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
} int main(int argc, const char * argv[]) {
char *arr[]={"China","America","Flash","Toop"}; for(int i=;i<;i++){
printf("%s\n",arr[i]);
}
printf("\n");
sortString(arr,); for(int i=;i<;i++){
printf("%s\n",arr[i]);
} return ;
}

C语言回顾-字符串指针的更多相关文章

  1. Swift3.0语言教程使用指针创建和初始化字符串

    Swift3.0语言教程使用指针创建和初始化字符串 Swift3.0语言教程使用指针创建和初始化字符串苹果的Swift团队花了不少功夫来支持C的一些基础特性.C语言中为我们提供了指针,Swift也不例 ...

  2. C语言中字符数组和字符串指针分析

    这几天搞Unix上的C程序,里面用到了很多字符数组和字符串指针,我记得在学完C语言后相当一段时间里,对指针这个东西还是模模糊糊,后来工作也没怎么 用到过C,虽然网上这类的文章也有很多,还是决定自己在这 ...

  3. c语言字符串指针

    最近正在看c语言,在指针这块遇到了麻烦,特别是字符串指针这块,简单记录下. 字符串指针 void main() { char *p = "tasklist"; printf(&qu ...

  4. C语言复习-字符串与指针

    C语言复习-字符串与指针 例一: [字符串处理 去除C代码中的注释] C/C++代码中有两种注释,/* */和//.编译器编译预处理时会先移除注释.就是把/*和*/之间的部分去掉,把//以及之后的部分 ...

  5. go语言之字符串、指针、数组、切片、结构struct、面向对象

    一: 字符串 概述: Go 语言将字符串作为 种原生的基本数据类型,字 符串的初始化可以使用字符串字面量. (1)字符串是常量,可以通过类 数组 索引访问其字节单元,但是不能修改某个字节的值 (2)宇 ...

  6. C语言 字符串指针和字符串数组使用区别

    字符串指针和字符串数组使用区别 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 ...

  7. 黑马程序员_ C语言基础之指针(三)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 指针是C语言的精髓,但是很多初学者往往对于指针的概念并不深刻,以至于学完之后随着时间的推移 ...

  8. C语言中的指针数组

    C语言中的指针数组是什么,像 char *a[]={"ddd","dsidd","lll"}; 这里讲一下注意如果我们使用了a也就是首元素的 ...

  9. <2014 04 15> C++语言回顾精要(原创By Andrew)

    C++语言回顾精要 <Visual C++程序设计>张岳新,这本书是很多学校的本科生C++教学用书,今天重新拿来翻了一遍.跟很多国人写的技术书籍一样,写书并不是为了让初学者看懂入门,而是为 ...

随机推荐

  1. java分享第十天(http协议简介)

    URL模式URL(Uniform Resource Locator) 地址用于描述一个网络上的资源, 基本格式如下scheme 指定低层使用的协议(例如:http, https, ftp)host H ...

  2. Win 10 文件浏览器无法打开

    今天遇到个很奇怪的问题,文件浏览器File Explorer无法正常显示,点击打开后任务栏上已经显示打开了,但是屏幕上却看不到任何窗口,开始以为机子中了恶意的木马,然后就疯狂的查毒,然而并没有解决问题 ...

  3. c# winform编程之多线程ui界面资源修改总结篇

    单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么 ...

  4. Neil·Zou 语录二

    1 “Later equals never !”LeBlanc法则   2 爱情使人忘记时间,时间也会使人忘记爱情,不要让太多的昨天占据你的今天,请相信:是你的不管你怎样任性他都不会离开你:失去的其实 ...

  5. nginx服务器配置

    nginx主要配置 #定义Nginx运行的用户和用户组user www www; #每个worker进程绑定到指定CPU ,均衡各CPU 负载worker_cpu_affinity 000000000 ...

  6. 利用JS生成01010101……长度可控的序列

    function ab(d){ var a = []; var x = 1 ; for (var i = 0; i < d; i++) { if (x == 0) { x = x + 1; } ...

  7. frag General URL components

    HTTP: The Definitive Guide 2.2.7 Fragments Some resource types, such as HTML, can be divided further ...

  8. Tomcat常见问题汇总

    1.在服务器上一定要开启-server参数 #直接在一堆注释下添加即可 #即是在 # OS specific support.注释之前 JAVA_OPTS= -server 2.tomcat启动很慢  ...

  9. Angular-ngtable

    paginationMaxBlocks: XX, 最大显示页脚个数paginationMinBlocks: XX, 最小显示页脚个数

  10. Redis学习笔记(3)-Hash

    package cn.com; import java.util.HashMap; import java.util.List; import java.util.Map; import java.u ...