学习日记

大概学习了:
1.c指针了解了一下
2.写了一道 w3cshool的初级算法编程题目
3. 了解了一下数据结构

突然决定学习数据结构,虽然还要考vb二级和数据库三级,但是我觉的还是可以尝试一下。

学习数据结构必须要学习C语言的指针
虽然是一道简单的题目,数组查询题目,仍然值得高兴,
居然带动了一个身边的人一起学习编程。
它在刷w3cshool的题目,我以前学过,但是放弃了,我是一个容易放弃的人,但是我会不断尝试,所以这次我决定有空的时候继续刷一下这些题目,


一些凌乱 的笔记放进去把

直接补一下基础:

指针简单又有趣?
简化c编程任务,还有一些任务,动态内存分配,没有指针是无法执行的,

变量都有一个内存位置,内存位置都定义 了 可使用连字号(&)运算符访问的地址,他表示了内存中的一个地址。

#include <stdio.h>
int main(){
int var1;
char var2[10];
printf('var1变量的地址为: %\n", &var1)
printf('var2变量的地址为: %\n",&var2);

return 0;

}运行产生结果
var1 变量的地址: 0x7fff5cc109d4
var2 变量的地址: 0x7fff5cc109de

再仔细分析一下,上面那句话

变量都有一个内存位置,
内存位置定义了可使用连字号(&)运算符访问的地址
他表示了内存中的一个地址

&var1 就是 var1 变量的内部菜鸟位置
printf("%\n",&var1)
ox7fff5cc109d4

什么是指针呢?
指针是一个变量。 其值为另一个变量的地址,
即内存位置的直接地址。
就像其他变量或者常量一样,必须在使用指针存储其他变量之前,对其进行申明

例如:
type *var-name;
type是指针的基本类型,必须是以个有效的c数据类型,var-name 是指针变量的名字

用来声明指针的星号,

仔细阅读一下:
星号是用来指定一个变量是指针

int *ip;
double *dp;
float *fp;
char *ch;

整型指针变量
double型指针变量
浮点型指针变量
字符型的指针变量

所有的实际数据类型 对应的指针的值的类型是一样的。都是代表内存地址的
16进制数字

如何使用指针

  1. 第一个指针变量
  2. 把变量地址赋值给指针
    3.访问指针变量中可以使用地址的值
    用* 来访问操作数所指定的地址的变量的值。

#include <stdio.h>
int main(){
int var = 20;
int *ip;

ip = &var;
printf(“Address pf var variable: &\n”,&var);
printf(“Address stored in ip variable: %\n”, ip);
printf(“Address of *ip variable: %\n”, *ip);
return 0;
}
bffd83c
bffd8b3c
20

int *ip 意思 是 ip是一个指针变量 , ip就是 bffd8b3c 地址名

*ip 就是地址名中的值

仔细阅读

  • 可以想象为返回指针变量中地址的值的操作符

ip是指针变量,&var是变量地址
&返回var变量中的地址,
&var的值是等于指针变量中的值的。
所以当我们真正要使用ip中的值时,我需要*ip;
也就是所 * 有两个作用
一个是 声明 ip是指针变量

NULL 指针
变量声明的时候,如果没有确切的地址可以赋值,为指正便令赋值一个NULL值是一个良好的编程习惯。
NULL 指针是一个定义在标准库中 值为0 的常量。

#include <stdio.h>
int main()
{
int *ptr = NULL;
printf(“ptr 的地址为 %p\n”,ptr);
return 0;
}

这是NULL 技术
操作系统上不允许 访问地址为0 的内存。
内存0有重大 的意义
它表名,指针不指向可访问的位置,如果指针为0,假定它不指向任何位置。

if(ptr)
if(!ptr)
检查ptr指针变量是否为空

var str1 = “”
var str2 = “”
var i = str1.indexOf(str);
alert(i);

var Str = “”
var Str1 = “”
alert(Str.toLowerCase().indexOf(Str1.toLowerCase()));

String.prototype._indexOf = String.prototype.indexOf;
String.prototype.indexOf.apply(this.ar

function mutation(arr) {
var str1 = arr[0].toLowerCase();
var str2 = arr[1].toLowerCase();
var x = str1.indexOf(str2)
if(x>0){
return true;
}else{
return false;
}
}

mutation([“hello”, “hey”]);

改进一下;

for(var i = 0;i < arr[1].length;I++){
if(arr[0].toUpperCase.IndexOf(arr[1][i].toUpperCase())==-1){
return false;
}
return true
}


指针就是地址
地址就是指针

指针变量: 才是存放内存单元地址的变量

指正的本质: 是一个操作受限的非负整数

基本类型的指针

指针和数组

include <studi.o>

int main{

}
地址: 内存单元的编号,从零开始的非负整数 0 ----ffffffff

分类:
基本类型的指针
基本类型的指针 基本类型的指针 基本类型的指针 基本类型的指针
基本类型的指针
p 1000H

i 2000H

3000H j

i = 10

2000H 10 i
i的地址给p
1000H 2000H p
i的地址发给p,这就叫做p的指针指向i
p保存了i 的地址,p就代表了i,i和p

int *p;
int i = 10;
int jl

char ch = ‘A’;
p = &i;

return 0;

数组查询算法 w3csool

var str1 = “”
var str2 = “”
var i = str1.indexOf(str);
alert(i);

var Str = “”
var Str1 = “”
alert(Str.toLowerCase().indexOf(Str1.toLowerCase()));

String.prototype._indexOf = String.prototype.indexOf;
String.prototype.indexOf.apply(this.ar

function mutation(arr) {
var str1 = arr[0].toLowerCase();
var str2 = arr[1].toLowerCase();
var x = str1.indexOf(str2)
if(x>0){
return true;
}else{
return false;
}
}

mutation([“hello”, “hey”]);

改进一下;

for(var i = 0;i < arr[1].length;I++){
if(arr[0].toUpperCase.IndexOf(arr[1][i].toUpperCase())==-1){
return false;
}
return true
}

人们渴望的力量其实就隐藏在他们内心之中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值